【pandas】DataFrameでNaNの行列を削除する方法(dropnaの使い方まとめ) 您所在的位置:网站首页 steven robertson 【pandas】DataFrameでNaNの行列を削除する方法(dropnaの使い方まとめ)

【pandas】DataFrameでNaNの行列を削除する方法(dropnaの使い方まとめ)

#【pandas】DataFrameでNaNの行列を削除する方法(dropnaの使い方まとめ)| 来源: 网络整理| 查看: 265

今回はDataFrameの削除に使う関数の解説です。

コードと画像をたくさん使っています。参考になれば幸いです。

目次 1 行・列の削除に使える関数2 dropna関数の引数3 axisとhowの役割3.1 行方向に削除3.2 列方向に削除3.3 how=’all’のとき4 inplaceの役割4.1 デフォルト(False)のとき4.2 Trueのとき5 threshの役割6 subsetの役割7 まとめ 行・列の削除に使える関数 関数処理df.pop(列名)1列を削除するdel df[列名] 複数列を削除できる。df.loc[行名]は使えないdf.drop()複数行・列を削除できる詳しくはコチラの記事へdf.dropna()NaNのセルがある行・列を削除この記事で解説します。df.drop_duplicates()重複列の削除詳しくはコチラの記事へ

pop、del、dropの3つの基本的な使い方は以下の記事でまとめています。

関連記事 【Python】pandasのデータフレームで行・列を削除する方法

こんにちは、今回はpandasのDataFrameで行や列を削除する方法を解説していきます。 それぞれの役割やメリットを確認しながら基本的なポイントを押さえていきましょう。 [itemlink post_id="4429"] […]

この記事ではdropna関数に関して解説していきます。

dropna関数の引数

pandas公式ドキュメントのdropnaページはコチラ

この関数は空(NaN)になっているセルがある行や列を削除します。行方向にみるのか列方向に見るのかは選択できます。

引数デフォルト値処理axis0(行方向)1で列方向how'any''any'は少なくとも一つNaNがある行や列を削除する'all'はすべてNaNの行や列を削除するthreshなし整数を渡す例)2のときは欠損していないセルが2つ以上の行・列を残すsubsetなし列名のリストを渡すと、その列からNAをさがして削除するinplaceFalseTrueでもとのDataFrameを変更する

それぞれの引数の解説では以下のデータフレームを使います。

Python 1234567891011 import pandas as pdimport numpy as np df = pd.DataFrame(    {'name': ['Tom', 'Bob', 'Ken', 'Elis', 'Nancy'],      'class': ['A', 'B', np.nan, pd.NaT, pd.NaT],     'height': [170, np.nan, np.nan, np.nan, np.nan],     'weight': [75, 81, 72, np.nan, np.nan],     'address': ['USA', None, None, None, None]}) df 削除する前のDataFrame削除する前のDataFrame

NaNには、pd.NaT、None、np.nanの3種類があります。(ほかにもあるかもしれませんが今回はこれです。)

pdはpandas、npはnumpyの意味です。

dropna関数は3つとものNaNに対して正しく処理してくれます。

axisとhowの役割

基本的にNaNが1つもない行や列しか残りません。

一つでもあったら消されます。

行方向に削除 Python 12345 #デフォルトで行方向df.dropna() #以下でも同じdf.dropna(axis=0) dropna関数行方向の削除 列方向に削除 Python 1 df.dropna(axis=1) dropna関数列方向の削除 how=’all’のとき

全て空(NaN)の行や列を削除します。

Python 123456789 #行方向に見るdf.dropna(how='all') #以下も行方向df.dropna(axis=0, how='all')  #列方向に見るdf.dropna(axis=1, how='all')

今回の例で使っているDataFrameはすべて空の行や列がないので削除されません。

inplaceの役割

もしdropna関数を使ったのに削除されていない場合はこの引数を見てみましょう。

デフォルト(False)のとき

このとき元のDataFrameは変更されません。

つまり、削除されていないもとのDataFrameが表示されます。

Python 12345 #NaNの行を削除df.dropna() #表示df 削除する前のDataFrame削除する前のDataFrame Trueのとき

このときは元のDataFrameが変更されています。

Python 12345 #NaNの行を削除df.dropna(inplace=True) #表示df dropna関数のinplace削除が反映される

元のDataFremeを変更したくないけど、削除したものを残したい場合は別の変数に代入しておきます。

以下のdrop関数の記事のinplaceの部分にコードが書いています。

関連記事 【pandas】行列の削除dropまとめ「複数条件・inplace・消えない理由」

こんにちは、今回はdrop関数に関して詳しくまとめていきたいと思います。 DataFrameの整形で非常に役に立つ関数なのでぜひ使い来ないしたいですね。 特に、dropを使ったのに削除できなかったときの対処法も書いています。 […]

【pandas】行列の削除dropまとめ「複数条件・inplace・消えない理由」 threshの役割 整数を渡す。thresh=2なら、NaNでないセルが2つ以上ある行や列を残す。行方向に削除するときはaxis=0でもOK Python 12345 #行方向df.dropna(thresh=2) #列方向df.dropna(axis=1, thresh=2) dropna関数のthresh行方向に削除 dropna関数のthresh列方向 subsetの役割 列名か行名のリストを渡す。その列または行のNaNを削除する。指定外の列や行にはNaNが残ることもある。 Python 12345 #行方向df.dropna(subset=['name', 'class']) #列方向df.dropna(subset=[0, 2], axis=1) dropna関数行方向の削除 dropna関数のsubset列方向の削除 まとめ

今回はNaNを消す関数の使い方をまとめました。

NaNの種類が3つもあることを初めて知りました!

削除に困っている方の参考になれば幸いです。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有